home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The CICA Windows Explosion!
/
The CICA Windows Explosion! - Disc 2.iso
/
demo
/
wemdemo4.zip
/
INFO
/
EDEBUG.2
(
.txt
)
< prev
next >
Wrap
GNU Info File
|
1994-09-21
|
22KB
|
390 lines
This is Info file ../info/edebug, produced by Makeinfo-1.56 from the
input file edebug.txi.
This file documents Edebug
This is edition 1.2 of the Edebug User Manual for edebug Version 2.6,
Copyright (C) 1991 Daniel LaLiberte
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy and distribute modified versions of
this manual under the conditions for verbatim copying, provided that
the entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be stated in a
translation approved by the Foundation.
File: edebug, Node: Options, Next: Todo List, Prev: Macro Calls, Up: Top
Options
=======
- User Option: edebug-all-defuns
Default `nil'. If non-`nil', all `defuns' and `defmacros'
evaluated will use edebug. `eval-defun' without prefix arg and
`eval-region' will use `edebug-defun'.
If `nil', `eval-region' evaluates normally, but `eval-defun' with
prefix arg uses `edebug-defun'. `eval-region' is called by
`eval-defun', `eval-last-sexp', and `eval-print-last-sexp'.
You may wish to make this variable local to each elisp buffer by
calling `(make-local-variable 'edebug-all-defuns)' in your
`emacs-lisp-mode-hook'. You can use the function
`edebug-all-defuns' to toggle its value.
- User Option: edebug-eval-macro-args
Default `nil'. If non-`nil', edebug will assume that all macro
call arguments for macros that have no `edebug-form-spec' may be
evaluated, otherwise it will not. To specify exceptions for macros
that have some arguments evaluated and some not, you should
specify an `edebug-form-spec' (*note Macro Calls::.).
- User Option: edebug-stop-before-symbols
Default `nil'. Non-`nil' causes edebug to stop before symbols as
well as after. This option is used when the `edebug-defun' is
called, not when edebugging, so set the option before using
`edebug-defun'.
- User Option: edebug-save-windows
Default `t'. If non-`nil', save and restore window configuration
on edebug calls. It takes some time to save and restore, so if
your program does not care what happens to the window
configurations, it is better to set this variable to `nil'.
- User Option: edebug-save-point
Default `t'. If non-`nil', save and restore the point and mark in
source code buffers.
- User Option: edebug-save-displayed-buffer-points
Default `nil'. If non-`nil', save and restore the points of all
buffers, displayed or not.
Saving and restoring buffer points is necessary if you are
debugging code that changes the point of a buffer which is
displayed in a non-selected window. If edebug or the user then
selects the window, the buffer's point will be changed to the
window's point.
Saving and restoring is an expensive operation since it visits each
window and each displayed buffer twice for each edebug call, so it
is best to avoid it if you can.
- User Option: edebug-initial-mode
Default `'step'. Global initial mode for edebug, if non-`nil'.
This is used when edebug is first entered for each recursive-edit
level. Possible values are `nil' (meaning use the current
edebug-mode), `'step', `'go', `'Go-nonstop', `'trace',
`'Trace-fast', `'continue', and `'Continue-fast'.
- User Option: edebug-trace
Default `nil'. Non-`nil' if edebug should show a trace of
function entry and exit. Tracing output is displayed in a buffer
named `*edebug-trace*', one function entry or exit per line,
indented by the recursion level. You can customize by replacing
functions `edebug-print-trace-entry' and `edebug-print-trace-exit'.
File: edebug, Node: Todo List, Prev: Options, Up: Top
Todo List
=========
Send me your suggestions and priorities.
If you are interested in running edebug on functions in edebug.el, I
find it easiest to first copy edebug.el into another file, say
fdebug.el, and replace all strings "edebug" with "fdebug", then
evaluate the fdebug buffer and run edebug on functions in fdebug.el.
* Bug: Occasionally, your elisp buffer will remain read-only after
quitting. This is mostly an annoyance, but certainly should be
fixed. *Let me know if you can see it - I don't see it any
more. *
* Bug: I've noticed that the point of some buffers was reset to the
point of some other buffer, but I haven't been able to repeat it
so perhaps it is fixed.
* Bug: "(" in the first column of doc strings messes up
`eval-current-buffer', and perhaps others.
* Bug: Some legal token streams are still not processed correctly by
`edebug-defun'. For now, be sure there is a space before `'' and
don't use `""' inside strings.
* There are no other known bugs, so if you find any, please let me
know. There is nothing worse than a buggy debugger!
* Let me know if you find any side effects that could or should be
avoided. Also *note Side Effects::..
* Figure out how `max-lisp-eval-depth' and `max-specpdl-size' should
be set.
* Remember the window configuration inside debugger between edebug
calls and remember original configuration on the first call to
edebug after an interactive command at a lower level.
* Make edebug work with selective display - dont stop in hidden
lines.
* Handle top-level expressions (i.e. outside of defs). Store
offsets in buffer-local variable?
* Debug just one or selected subexpressions of a defun - the rest is
evalled normally.
* Should `overlay-arrow-position' and `-string' be buffer local?
* Explicit calls to edebug in user code?
* Use copy of `current-local-map' instead of `emacs-lisp-mode-map'
(but only copy the first time after lower level command - to save
time).
* Better integration with standard debug.
* Use `inhibit-quit' while edebugging?
* Crawl mode would `sit-for' 0 or 1 in the outside window
configuration between each edebug step. Maybe it should be a
separate option that applies to trace as well.
* Customizable `sit-for' time. Less than a second would be nice.
* Counting conditions - stop after n iterations. You can do it
manually now with conditional breakpoints.
* minibuffer trace - show the current source line in the minibuffer
instead of moving point to the expression.
* Performance monitoring - summarize trace data.
* Speed up edebug-defun and edebugging - always.
* Preserve breakpoints between edebug-defun compilations?
* Backquote could be handled better, but with difficulty.
* Step into code not previously evaluated with `edebug-defun'.
Restore to no edebug version after having entered. Partially
implemented with `i' command.
* Optionally replace expressions with results in a separate buffer
from the source code. This idea is based on discussions with Carl
Witty regarding his stepper debugger. Also, unparse code into its
own buffer if source code is not available, or if user wishes to
use replace-with-results mode.
* Preserve previous bindings of local variables, and allow user to
jump back to previous frames, particularly binding frames (i.e.
`let', `condition-case', function and macro calls) to view values
at that frame. What about buffer local variables? This is very
complex, and it would be better to have access to the Lisp stack.
* Variables display, like the evaluation list but automatically
display all local variable values.
File: edebug, Node: Index, Prev: Top, Up: Top
Index
*****
* Menu:
* &optional: Macro Calls.
* &or: Macro Calls.
* &rest: Macro Calls.
* *edebug* buffer: Evaluation.
* *edebug-trace*: Options.
* .emacs: Installation.
* ?: Using Edebug.
* a: Using Edebug.
* abort-recursive-edit: Using Edebug.
* anonymous lambda expressions: Using Edebug.
* autoloading edebug: Installation.
* b: Breakpoints.
* B: Breakpoints.
* backquote: Macro Calls.
* backtracking: Macro Calls.
* blink current buffer: Views.
* breakpoints: Breakpoints.
* buffer point: Todo List.
* c: Edebug Modes.
* C: Edebug Modes.
* C-cC-d: Evaluation.
* C-cC-u: Evaluation.
* C-cC-w: Evaluation.
* C-xC-e: Evaluation.
* C-xC-e: Evaluation.
* C-xx: Using Edebug.
* calling edebug recursively: Using Edebug.
* clearing breakpoints: Breakpoints.
* command-history: Side Effects.
* conditional breakpoints: Breakpoints.
* continue fast mode: Edebug Modes.
* continue mode: Edebug Modes.
* counting conditions: Todo List.
* current buffer point and mark: Outside Window Configuration.
* cursor-in-echo-area: Outside Window Configuration.
* d: Miscellaneous.
* debug-on-error: Using Edebug.
* debug-on-quit: Using Edebug.
* debugger: Using Edebug.
* debugging edebug: Todo List.
* def-edebug-form-spec: Macro Calls.
* defmacro: Using Edebug.
* defun: Using Edebug.
* displayed buffer points: Outside Window Configuration.
* dotted pair notation: Macro Calls.
* E: Evaluation.
* e: Evaluation.
* edebug: Using Edebug.
* edebug buffer: Using Edebug.
* edebug display update: Outside Window Configuration.
* edebug initialization: Installation.
* edebug installation: Installation.
* edebug modes: Edebug Modes.
* edebug recursive edit: Using Edebug.
* edebug-all-defuns: Evaluating defuns.
* edebug-all-defuns: Evaluating defuns.
* edebug-all-defuns: Options.
* edebug-backtrace: Miscellaneous.
* edebug-bounce-point: Views.
* edebug-continue: Edebug Modes.
* edebug-Continue-fast: Edebug Modes.
* edebug-defun: Using Edebug.
* edebug-delete-eval-item: Evaluation.
* edebug-enter: Using Edebug.
* edebug-eval-expression: Evaluation.
* edebug-eval-last-sexp: Evaluation.
* edebug-eval-last-sexp: Evaluation.
* edebug-eval-macro-args: Macro Calls.
* edebug-eval-macro-args: Options.
* edebug-eval-print-last-sexp: Evaluation.
* edebug-form-spec: Macro Calls.
* edebug-forward-sexp: Miscellaneous.
* edebug-global-prefix: Edebug Modes.
* edebug-go: Edebug Modes.
* edebug-Go-nonstop: Edebug Modes.
* edebug-goto-here: Miscellaneous.
* edebug-help: Using Edebug.
* edebug-initial-mode: Edebug Modes.
* edebug-initial-mode: Options.
* edebug-mode: Using Edebug.
* edebug-next-breakpoint: Breakpoints.
* edebug-previous-result: Using Edebug.
* edebug-print-trace-entry: Options.
* edebug-print-trace-exit: Options.
* edebug-save-displayed-buffer-points: Outside Window Configuration.
* edebug-save-displayed-buffer-points: Options.
* edebug-save-point: Options.
* edebug-save-windows: Options.
* edebug-save-windows: Outside Window Configuration.
* edebug-set-breakpoint: Breakpoints.
* edebug-set-conditional-breakpoint: Breakpoints.
* edebug-step-in: Miscellaneous.
* edebug-step-out: Miscellaneous.
* edebug-step-through: Edebug Modes.
* edebug-stop: Edebug Modes.
* edebug-stop-before-symbols: Options.
* edebug-stop-before-symbols: Using Edebug.
* edebug-toggle-save-windows: Views.
* edebug-trace: Options.
* edebug-trace: Edebug Modes.
* edebug-Trace-fast: Edebug Modes.
* edebug-unset-breakpoint: Breakpoints.
* edebug-update-eval-list: Evaluation.
* edebug-view-outside: Views.
* edebug-visit-eval-list: Evaluation.
* edebug-where: Views.
* edebug-where: Evaluation.
* edebug.el: Installation.
* emacs lisp stack frames: Just Checking.
* emacs screen display update: Outside Window Configuration.
* emacs-lisp-mode: Using Edebug.
* embedded defun and defmacro: Using Edebug.
* entering functions: Miscellaneous.
* epoch screens: Outside Window Configuration.
* error or quit: Outside Window Configuration.
* eval-current-buffer: Using Edebug.
* eval-current-buffer: Todo List.
* eval-current-buffer: Evaluating defuns.
* eval-defun: Using Edebug.
* eval-defun: Evaluating defuns.
* eval-expression: Evaluation.
* eval-last-sexp: Evaluating defuns.
* eval-print-last-sexp: Evaluating defuns.
* eval-region: Evaluating defuns.
* evaluate in outside context: Evaluation.
* evaluation: Evaluation.
* evaluation defuns: Evaluating defuns.
* evaluation list group: Evaluation.
* evaluation list window: Evaluation.
* exiting functions: Miscellaneous.
* f: Miscellaneous.
* function call: Using Edebug.
* function cell: Using Edebug.
* function symbol: Macro Calls.
* G: Edebug Modes.
* g: Edebug Modes.
* go mode: Edebug Modes.
* go nonstop mode: Edebug Modes.
* h: Miscellaneous.
* i: Miscellaneous.
* ignore breakpoints: Edebug Modes.
* in edebug: Using Edebug.
* inhibit-quit: Todo List.
* input pending: Edebug Modes.
* inside context: The Outside Context.
* interactive expression argument: Edebug Modes.
* interactive forms: Using Edebug.
* interrupting execution: Edebug Modes.
* keyboard macros: Edebug Modes.
* keyboard macros: Just Checking.
* lambda expression: Using Edebug.
* lambda expression: Macro Calls.
* last-command: Recursive Edit.
* last-command-char: Recursive Edit.
* last-input-char: Recursive Edit.
* LFD: Evaluation.
* lisp stack: Side Effects.
* lisp-interaction-mode: Evaluation.
* load-library: Using Edebug.
* load-path: Installation.
* loading: Evaluating defuns.
* local keymap of edebug buffer: Recursive Edit.
* local variables: Todo List.
* macro call argument types: Macro Calls.
* macro calls: Macro Calls.
* match data of current buffer: Recursive Edit.
* max-lisp-eval-depth: Just Checking.
* max-lisp-eval-depth: Side Effects.
* max-lisp-eval-depth: Todo List.
* max-specpdl-size: Todo List.
* max-specpdl-size: Side Effects.
* max-specpdl-size: Just Checking.
* minibuffer: Todo List.
* move to stop point: Views.
* moving overlay arrow: Using Edebug.
* moving point: Using Edebug.
* moving window start: Using Edebug.
* narrow-to-region: Evaluating defuns.
* o: Miscellaneous.
* options: Options.
* outside context: The Outside Context.
* outside context for evaluation: Evaluation.
* outside window configuration: Views.
* outside window configuration: Outside Window Configuration.
* overlay-arrow-position: Outside Window Configuration.
* overlay-arrow-string: Outside Window Configuration.
* p: Views.
* pause: Edebug Modes.
* performance monitoring: Todo List.
* point in edebug buffer: Outside Window Configuration.
* preserve breakpoints: Todo List.
* q: Using Edebug.
* read sexp: Todo List.
* read-only: Using Edebug.
* read-only bug: Todo List.
* read-only edebug buffer: Recursive Edit.
* reading input: Edebug Modes.
* recursion depth: Side Effects.
* recursive-edit: Recursive Edit.
* replace with results: Todo List.
* S: Edebug Modes.
* save-excursion: Outside Window Configuration.
* saving and restoring: Just Checking.
* selective display: Todo List.
* side effects: Side Effects.
* side effects: Todo List.
* sit-for: Todo List.
* sit-for: Outside Window Configuration.
* SPC: Edebug Modes.
* special forms: Using Edebug.
* standard-input: Recursive Edit.
* standard-output: Recursive Edit.
* step mode: Edebug Modes.
* stop execution: Edebug Modes.
* stop points: Using Edebug.
* symbols: Using Edebug.
* syntax error: Using Edebug.
* syntax error: Macro Calls.
* t: Edebug Modes.
* T: Edebug Modes.
* temporary breakpoints: Breakpoints.
* text changes: Side Effects.
* this-command: Recursive Edit.
* this-command-keys: Side Effects.
* this-command-keys: Recursive Edit.
* top-level: Using Edebug.
* top-level expressions: Todo List.
* trace fast mode: Edebug Modes.
* trace mode: Edebug Modes.
* tracing function entry and exit: Options.
* u: Breakpoints.
* unread-command-char: Side Effects.
* unread-command-char: Recursive Edit.
* using edebug: Using Edebug.
* v: Views.
* variables display: Todo List.
* views: Views.
* W: Views.
* w: Views.
* window configuration: Outside Window Configuration.
* window start of edebug buffer: Outside Window Configuration.
* x: Breakpoints.
* x: Using Edebug.
* `: Macro Calls.